package com.fowo.api.model.inventory.product.type;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 库存模块产品类型 导入导出辅助模型 */
@Getter
@Setter
public class InventoryProductTypeExcelPo {

  @ExcelProperty(value = "店铺")
  private Long shop;

  @ExcelProperty(value = "Listing负责人")
  private Long listingHead;

  @ExcelProperty(value = "锁库数量")
  private java.math.BigDecimal lockQty;

  @ExcelProperty(value = "可用锁定量")
  private Long locksAvailableAmount;

  @Size(max = 50, message = "MSKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "MSKU")
  private String msku;

  @ExcelProperty(value = "预锁定量")
  private Long preLockAmount;

  @Size(max = 50, message = "产品状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "产品状态")
  private String productStatus;

  @Size(max = 50, message = "产品类型长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "产品类型")
  private String productType;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "生产日期")
  private java.util.Date productionDate;

  @ExcelProperty(value = "项目内码")
  private Long projectId;

  @ExcelProperty(value = "采购单价")
  private java.math.BigDecimal purchasePrice;

  @ExcelProperty(value = "移除在途")
  private Long removeProgress;

  @ExcelProperty(value = "保质期(天)")
  private Long shelfLife;

  @ExcelProperty(value = "物料内码")
  private Long itemId;

  @Size(max = 50, message = "SKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "SKU")
  private String sku;

  @ExcelProperty(value = "SPU")
  private Long spu;

  @ExcelProperty(value = "库存金额")
  private java.math.BigDecimal stockAmount;

  @ExcelProperty(value = "仓库内码")
  private Long stockId;

  @ExcelProperty(value = "库存数量")
  private Long stockQty;

  @ExcelProperty(value = "品名")
  private Long tradeName;

  @ExcelProperty(value = "调拨在途")
  private Long transfer;

  @ExcelProperty(value = "单位费用")
  private java.math.BigDecimal unitCosts;

  @ExcelProperty(value = "单位头程")
  private java.math.BigDecimal unitHeadStroke;

  @ExcelProperty(value = "单位库存成本")
  private java.math.BigDecimal unitInventoryCost;

  @ExcelProperty(value = "数据版本")
  private Long version;

  @ExcelProperty(value = "待到货量")
  private Long wait;

  @ExcelProperty(value = "仓库")
  private Long wareHouse;

  @ExcelProperty(value = "在途数量")
  private java.math.BigDecimal wayQty;

  @ExcelProperty(value = "次品量")
  private Long defectiveQuantity;

  @Size(max = 50, message = "0-15天库龄长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "0-15天库龄")
  private String age0;

  @Size(max = 50, message = "16-30天库龄长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "16-30天库龄")
  private String age16;

  @Size(max = 50, message = "31-90天库龄长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "31-90天库龄")
  private String age31;

  @Size(max = 50, message = "91天以上库龄长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "91天以上库龄")
  private String age91;

  @Size(max = 50, message = "预警状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "预警状态")
  private String alertStatus;

  @ExcelProperty(value = "辅助计量内码")
  private Long auxId;

  @ExcelProperty(value = "辅助数量")
  private java.math.BigDecimal auxQty;

  @ExcelProperty(value = "可用量")
  private Long availbleNum;

  @ExcelProperty(value = "平均库龄")
  private Long averageInventoryAge;

  @Size(max = 50, message = "批号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "批号")
  private String batchNo;

  @ExcelProperty(value = "残次数量")
  private java.math.BigDecimal defectQty;

  @ExcelProperty(value = "次品锁定量")
  private Long defectiveLockAmount;

  @ExcelProperty(value = "实际总量")
  private Long actualTotal;

  @ExcelProperty(value = "陈列数量")
  private java.math.BigDecimal displayQty;

  @ExcelProperty(value = "预计总量")
  private Long estimatedTotal;

  @ExcelProperty(value = "期望可用量")
  private Long expectAmount;

  @ExcelProperty(value = "期望待到货量")
  private Long expectArrive;

  @ExcelProperty(value = "费用")
  private java.math.BigDecimal expenses;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "有效期至")
  private java.util.Date expiryDate;

  @Size(max = 50, message = "FNSKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "FNSKU")
  private String fnsku;

  @ExcelProperty(value = "货值")
  private java.math.BigDecimal goodsValue;

  @ExcelProperty(value = "头程")
  private java.math.BigDecimal headStroke;

  @ExcelProperty(value = "待检待上架量")
  private Long inspected;

  @ExcelProperty(value = "库存成本")
  private java.math.BigDecimal inventoryCost;
}
